/*
 * Created on Dec 16, 2004
 *
 */
package ca.etsmtl.log120.tp3.tests;

import ca.etsmtl.log120.tp3.cartes.Carte;
import ca.etsmtl.log120.tp3.cartes.CouleurCarte;
import ca.etsmtl.log120.tp3.cartes.Denomination;
import ca.etsmtl.log120.tp3.mains.Main;
import ca.etsmtl.log120.tp3.rangs.QuinteCouleur;


/**
 * Ensemble de tests unitaires pour tester l'analyse d'une main qui est une quinte couleur (Straight Flush) de Poker
 * 
 * @author Cris
 */
public class QuinteCouleurTest extends AbstractAnalyseurRangTest
{


	public void testEvalueMain()
	{
		/*
		 * Test avec main qui n'est pas une quinte couleur
		 */
		Main main = new Main();
		main.add(new Carte(Denomination.TROIS, CouleurCarte.CARREAU));
		main.add(new Carte(Denomination.NEUF, CouleurCarte.PIQUE));
		main.add(new Carte(Denomination.AS, CouleurCarte.TREFLE));
		main.add(new Carte(Denomination.DAME, CouleurCarte.COEUR));
		main.add(new Carte(Denomination.DEUX, CouleurCarte.COEUR));
		
		assertFalse(new QuinteCouleur().reconnaitreMain(main));

		/*
		 * Test avec main qui n'est pas une quinte couleur
		 */
		main = new Main();
		main.add(new Carte(Denomination.TROIS, CouleurCarte.TREFLE));
		main.add(new Carte(Denomination.CINQ, CouleurCarte.CARREAU));
		main.add(new Carte(Denomination.QUATRE, CouleurCarte.CARREAU));
		main.add(new Carte(Denomination.DEUX, CouleurCarte.CARREAU));
		main.add(new Carte(Denomination.AS, CouleurCarte.CARREAU));
		
		assertFalse(new QuinteCouleur().reconnaitreMain(main));

		/*
		 * Test avec main qui est une quinte couleur avec AS
		 */
		main = new Main();
		main.add(new Carte(Denomination.TROIS, CouleurCarte.CARREAU));
		main.add(new Carte(Denomination.CINQ, CouleurCarte.CARREAU));
		main.add(new Carte(Denomination.QUATRE, CouleurCarte.CARREAU));
		main.add(new Carte(Denomination.DEUX, CouleurCarte.CARREAU));
		main.add(new Carte(Denomination.AS, CouleurCarte.CARREAU));
		
		assertTrue(new QuinteCouleur().reconnaitreMain(main));

		/*
		 * Test avec main qui est une quinte couleur sans AS
		 */
		main = new Main();
		main.add(new Carte(Denomination.TROIS, CouleurCarte.COEUR));
		main.add(new Carte(Denomination.CINQ, CouleurCarte.COEUR));
		main.add(new Carte(Denomination.QUATRE, CouleurCarte.COEUR));
		main.add(new Carte(Denomination.DEUX, CouleurCarte.COEUR));
		main.add(new Carte(Denomination.SIX, CouleurCarte.COEUR));

		assertTrue(new QuinteCouleur().reconnaitreMain(main));

	}
}

///
